﻿// 文件使用MiniExcel源码， 使用时需遵循其 Apache License 2.0
// 修改摘要通知： 删除异步、Task等net2.0中不支持的内容，替换原先C#自带的zip处理方式，改用yacomp 进行解压缩。
using ExcelConfig.Attributes;
using ExcelConfig.Utils;
using System.Collections.Generic;

namespace ExcelConfig.OpenXml.Styles {
    internal static class SheetStyleBuilderHelper
    {
        internal static IEnumerable<ExcelColumnAttribute> GenerateStyleIds( int startUpCellXfs, ICollection<ExcelColumnAttribute> dynamicColumns ) {
            if ( dynamicColumns == null )
                yield break;

            int index = 0;
            var map = new Dictionary<string, int>();
            foreach (var col in dynamicColumns)
            {
                if (!(!string.IsNullOrEmpty(col.Format.Trim()) && new ExcelNumberFormat(col.Format).IsValid)) continue;
                if (!map.ContainsKey(col.Format))
                {
                    map.Add(col.Format, index++);
                    col.FormatId = startUpCellXfs + map[col.Format];
                    yield return col;
                }
                else col.FormatId = startUpCellXfs + map[col.Format];
            }
        }
    }

}
